﻿namespace Typps
{
    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Linq;
    using System.Runtime.Serialization;
    using System.Text;
    using System.Web.UI;
    using System.Web.UI.WebControls;

    [DataContract]
    public abstract class BaseEffect
    {
        #region Properties

        /// <summary>
        /// Lets you define a function that is called after the effect 
        /// finishes, e.g., function (element,effect){/* ... */}.
        /// </summary>
        [DataMember(Name="finish")]
        public abstract string Finish
        {
            get;
            set;
        }

        [DataMember(Name = "effect")]
        public abstract string Name
        {
            get;
            internal set;
        }

        [DataMember(Name="runMode")]
        public abstract EffectRunMode RunMode
        {
            get;
            set;
        }

        /// <summary>
        /// Lets you define a function that is called before the effect 
        /// begins, e.g., function (element,effect){/* ... */}.
        /// </summary>
        [DataMember(Name="setup")]
        public abstract string Setup
        {
            get;
            set;
        }

        #endregion Properties

        #region Methods

        public abstract void SetDirty();

        #endregion Methods
    }
}